<?php
class DefaultBaseController extends Zend_Controller_Action {
	
	var $_isAJAX = false;
	public function preDispatch() {
		$this->_helper->layout()->setLayout('static');
		$this->_isAJAX = $this->getRequest()->isXmlHttpRequest();
		Zend_Registry::set('metainfo', array(
			'title' => '',
			'description' => '',
			'keywords' => '',
		));
		Zend_Registry::set('dmetainfo', array(
			'title' => 'Продажа, аренда недвижимости Турции, Болгарии, России',
			'description' => 'Весь комплекс услуг по покупке, продаже, аренде недвижимости в Турции, Болгарии, России предоставляет агентство недвижимости aurora investment. Скидки, специальные предложения на покупку квартир, вилл, апартаментов, коммерческой недвижимости',
			'keywords' => 'Недвижимость в Турции. Квартиры в Турции, виллы в Турции, недвижимость в Болгарии, недвижимость в россии, зарубежная недвижимость болгария, купить недвижимость, аренда недвижимости, агенство зарубежной недвижимости',
		));
		if ($this->getRequest()->getControllerName() == 'index') {
			$t = 0;
			$this->view->topnews = Obj_News::getLastNews(3);
			$ttt = new Obj_DBTable_References();
			$this->view->references = $ttt->getLastReferences();
			$this->view->frontobjects = Obj_Object::getFrontpageObjects();
			foreach ($this->view->topnews as $v) {
				$t = max($t, strtotime($v['Modified']));  
			}
			foreach ($this->view->frontobjects as $v) {
				$t = max($t, strtotime($v['Modified']));  
			}
			if ($t > 0) {
				Zend_Registry::set('LastModified', date('Y-m-d H:i:s', $t));
			}
		}
		$this->view->CountryList = Obj_Country::getExtendedCountries();
	}
	
	public function postDispatch() {
		
		if ($this->getRequest()->getParam('stat') == 1) {
	    	$db = Zend_Db_Table::getDefaultAdapter();
	    	$profiler = $db->getProfiler();
	    	ob_start();
	    	echo "\n";
	    	echo "TOTALQ;".$profiler->getTotalNumQueries()."\n";
	    	echo "TOTALTIME: ".$profiler->getTotalElapsedSecs()."\n";
	    	foreach ($profiler->getQueryProfiles() as $v) {
	    		echo "========================\n";
	    		echo $v->getQuery()."\n";
	    		echo $v->getQueryParams()."\n";
	    		echo $v->getElapsedSecs()."\n";
	    		echo "========================\n";
	    	}
	    	$s = ob_get_clean();
	    	echo '<!-- '.$s.' -->';
		}
		$time = Zend_Registry::isRegistered('LastModified') ? strtotime(Zend_Registry::get('LastModified')) : mktime(9, 0, 0, 10, 14, 2011);
		if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
			$t = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
			if ($t > $time) {
				header('HTTP/1.1 304 Not Modified');
				exit;			
			}
		}
		$this->getResponse()->setHeader('Last-Modified', gmdate('D, d M Y H:i:s', $time) . ' GMT');
	}
	
	public function loadCountryLayoutInfo($alias) {
		$country = Obj_Country::getAliasCountry($alias);
		if ($country !== false) {
			$this->_helper->layout()->setLayout('country');
			$this->view->country = (object) $country;
			self::setMetaInfo($country['seoTitle'], $country['seoKeywords'], $country['seoDescription']);
			Zend_Registry::set('LastModified', $country['Modified']);
			$arRegions = Obj_Region::getRegions($country['ID'], true);
			$this->view->countryRegions = $arRegions;
			$this->view->headScript()->appendFile(HTTP_HOST.'/js/regions.js');
			$this->view->headScript()->appendScript('addOnLoad(initRegionsHighlight);');
		}
		else {
			$this->_helper->layout()->setLayout('static');
		}
		return $country;
	}
	
	public static function setMetaInfo($title, $keywords, $description) {
		Zend_Registry::set('metainfo', array(
			'title' => $title,
			'description' => $description,
			'keywords' => $keywords,
		));
	}
}